对于开发或者运维来说,使用python去完成一些跑批任务,或者做一些监控事件是非常正常的情况。那么如何有效的监控任务的进度,除了在任务中加上log外,还能不能有另一种方式来了解任务进展到哪一步了呢?
这就是今天我们来了解的内容,进度条
标准输出
首先说一下在操作系统中,都有哪些控制符:
\r: 将光标移动到当前行的首位而不换行;
\n:将光标移动到下一行,并不移动到首位;
\r\n:将光标移动到下一行首位。
那让我们来看下如何通过python来将标准输出中添加进度条吧
import sysimport timedef progress_bar(total): """ 进度条效果 """ # 获取标准输出 _output = sys.stdout # 通过参数决定你的进度条总量是多少 for count in range(0, total + 1): # 这里的second只是作为工作量的一种代替 # 这里应该是有你的主程序,main() _second = 0.1 # 模拟业务的消耗时间 time.sleep(_second) # 输出进度条 _output.write(f'\rcomplete percent:{count:.0f}') # 将标准输出一次性刷新 _output.flush()progress_bar(100)
tqdm模块
tqdm是一个快速、扩展性强的进度条工具库,它提供了非常多的接口,有兴趣的小伙伴可以了解一下。githup地址是: https://github.com/tqdm/tqdm
我们来看下,如何使用tqdm模块来实现进度条
1. 首先是安装,非常简单
pip install tqdm
from time import sleepfrom tqdm import tqdm# 这里同样的,tqdm就是这个进度条最常用的一个方法# 里面存一个可迭代对象for i in tqdm(range(1, 500)): # 模拟你的任务 sleep(0.01)
是不是看到这里发现,tqdm非常的简单呢?这只是一个例子啦,他也可以非常的复杂,同时你也支持多线程、多进程,还有pandas哦~来一个多进程的感受下吧~
目前我开了2个主群,我邀请了一些我的BAT伙伴前来助阵。定期也会在群里组织抽奖、送书等活动。更有各种资源分享。
目前2个主群都以过百,想要加入的小伙伴,可以加我微信,我拉你们,或者公众号回复关键“关注作者”。
另外:「高级群」已经升级啦!如果你错过了种子轮,难道还要错过天使轮吗?群内不定期组织红包接龙,每天中午1小时的随即话题讨论,没有广告,只聊技术、生活,这样的群上哪找?
浅尝Python快速排序
python的生产者消费者模型,看这篇就够了
文章有问题?点此查看未经处理的缓存